package org.jeecg.modules.business.entity;

import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.time.LocalDateTime;
import java.util.Date;
import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.*;
import com.sun.istack.NotNull;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @Description: 酒店预定订单
 * @Author: jeecg-boot
 * @Date:   2023-03-25
 * @Version: V1.0
 */
@Data
@TableName("bus_room_booking_orders")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="bus_room_booking_orders对象", description="酒店预定订单")
public class BusRoomBookingOrders implements Serializable {
    private static final long serialVersionUID = 1L;

	/**预定订单主键*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "预定订单主键")
    private String id;
	/**预定类型：1，全天；2时租;3自用；4免费；5长租；*/
	@Excel(name = "预定类型：1，全天；2时租;3自用；4免费；5长租；", width = 15)
    @ApiModelProperty(value = "预定类型：1，全天；2时租;3自用；4免费；5长租；")
    private Integer bookingType;
	/**预计抵达时间*/
	@Excel(name = "预计抵达时间", width = 15, format = "yyyy-MM-dd HH:mm")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
    @ApiModelProperty(value = "预计抵达时间")
    private Date arrivalTime;
	/**预离时间*/
	@Excel(name = "预离时间", width = 15, format = "yyyy-MM-dd HH:mm")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
    @ApiModelProperty(value = "预离时间")
    private Date dueOutTime;
	/**客源:平台字典项目ID*/
	@Excel(name = "客源:平台字典项目ID", width = 15)
    @ApiModelProperty(value = "客源:平台字典项目ID")
    private String customerSource;
	/**早餐数量*/
	@Excel(name = "早餐数量", width = 15)
    @ApiModelProperty(value = "早餐数量")
    private Integer breakfastNum;
	/**午餐数量*/
	@Excel(name = "午餐数量", width = 15)
    @ApiModelProperty(value = "午餐数量")
    private Integer lunchNum;
	/**晚餐数量*/
	@Excel(name = "晚餐数量", width = 15)
    @ApiModelProperty(value = "晚餐数量")
    private Integer dinnerNum;
	/**入住天数*/
	@Excel(name = "入住天数", width = 15)
    @ApiModelProperty(value = "入住天数")
    private Integer dayCount;
	/**客人类型；1、散客；2、会员；3、协议单位；4、中介*/
	@Excel(name = "客人类型；1、散客；2、会员；3、协议单位；4、中介", width = 15)
    @ApiModelProperty(value = "客人类型；1、散客；2、会员；3、协议单位；4、中介")
    private Integer customerType;
	/**客人类型为会员时的会员id*/
	@Excel(name = "客人类型为会员时的会员id", width = 15)
    @ApiModelProperty(value = "客人类型为会员时的会员id")
    private String vipCustomerId;
	/**客人类型为协议单位时的协议单位id*/
	@Excel(name = "客人类型为协议单位时的协议单位id", width = 15)
    @ApiModelProperty(value = "客人类型为协议单位时的协议单位id")
    private String contractTeamId;
	/**选择协议单位之后选择协议合同的id*/
	@Excel(name = "选择协议单位之后选择协议合同的id", width = 15)
    @ApiModelProperty(value = "选择协议单位之后选择协议合同的id")
    private String contractTeamProtocolId;
	/**房价方案ID*/
	@Excel(name = "房价方案ID", width = 15)
    @ApiModelProperty(value = "房价方案ID")
    private String roomPriceSlnId;
	/**中介名称*/
	@Excel(name = "中介名称", width = 15)
    @ApiModelProperty(value = "中介名称")
    private String agencyName;
	/**联系人ID*/
	@Excel(name = "联系人ID", width = 15)
    @ApiModelProperty(value = "联系人ID")
    private String contactId;
	/**担保方式；1、无担保；2、有担保；3、OTA担保*/
	@Excel(name = "担保方式；1、无担保；2、有担保；3、OTA担保", width = 15)
    @ApiModelProperty(value = "担保方式；1、无担保；2、有担保；3、OTA担保")
    private Integer warrantType;
	/**担保人ID*/
	@Excel(name = "担保人ID", width = 15)
    @ApiModelProperty(value = "担保人ID")
    private String warranter;
	/**外部订单编号*/
	@Excel(name = "外部订单编号", width = 15)
    @ApiModelProperty(value = "外部订单编号")
    private String outerOrdersNo;
	/**备注*/
	@Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private String remark;
	/**创建时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
	/**创建人*/
	@Excel(name = "创建人", width = 15)
    @ApiModelProperty(value = "创建人")
    private String createUser;
	/**预定记录状态；1 正常  2 取消*/
	@Excel(name = "预定记录状态；待定", width = 15)
    @ApiModelProperty(value = "预定记录状态；待定")
    private Integer bookingStatus;
	/**更新时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;
	/**更新人*/
	@Excel(name = "更新人", width = 15)
    @ApiModelProperty(value = "更新人")
    private String updateUser;
	/**预定订单号*/
	@Excel(name = "预定订单号", width = 15)
    @ApiModelProperty(value = "预定订单号")
    private String bookingOrdersNo;
	/**预定订单类型；1、散客预定；2、团队预定*/
	@Excel(name = "预定订单类型；1、散客预定；2、团队预定", width = 15)
    @ApiModelProperty(value = "预定订单类型；1、散客预定；2、团队预定")
    private Integer bookingOrdersType;
	/**是否公付房费*/
	@Excel(name = "是否公付房费", width = 15)
    @ApiModelProperty(value = "是否公付房费")
    private Integer publicRoomFee;
	/**是否公付消费*/
	@Excel(name = "是否公付消费", width = 15)
    @ApiModelProperty(value = "是否公付消费")
    private Integer publicConsumeFee;
	/**是否公付会员费*/
	@Excel(name = "是否公付会员费", width = 15)
    @ApiModelProperty(value = "是否公付会员费")
    private Integer publicVipFee;
	/**是否公付会议费*/
	@Excel(name = "是否公付会议费", width = 15)
    @ApiModelProperty(value = "是否公付会议费")
    private Integer publicMeetingFee;
	/**团队类型中的团队名称*/
	@Excel(name = "团队类型中的团队名称", width = 15)
    @ApiModelProperty(value = "团队类型中的团队名称")
    private String teamName;
    /**团队人数*/
    @Excel(name = "团队人数", width = 15)
    @ApiModelProperty(value = "团队人数")
    private Integer teamPeopleNumber;

    /**领队名称*/
	@Excel(name = "领队名称", width = 15)
    @ApiModelProperty(value = "领队名称")
    private String leaderName;
    /**钟点房计费项目id*/
    @Excel(name = "钟点房计费项目id", width = 15)
    @ApiModelProperty(value = "钟点房计费项目id")
    private String hourRoomId;
    /**预定方式:预定方式字典id*/
    @Excel(name = "预定方式:预定方式字典id", width = 15)
    @ApiModelProperty(value = "预定方式:预定方式字典id")
    private String bookingDicWay;

    /**团队类型字典ID*/
    @Excel(name = "团队类型字典ID", width = 15)
    @ApiModelProperty(value = "团队类型字典ID")
    private String teamTypeDicId;

    /**第三方用戶ID*/
    @Excel(name = "第三方用戶ID", width = 15)
    @ApiModelProperty(value = "第三方用戶ID")
    private String thirdLoginUserId;

    /**酒店id*/
    @Excel(name = "酒店id", width = 15)
    @ApiModelProperty(value = "酒店id")
    private String hotelId;

    @TableField(exist = false)
    private Boolean isTeam;
    @TableField(exist = false)
    private Boolean isRel;
    @TableField(exist = false)
    private String relTag;
    @TableField(exist = false)
    private Integer settleType;
    @TableField(exist = false)
    private String teamTag;
    @TableField(exist = false)
    private String longSchemeId;

}
